home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat5 / opt.z / opt
Encoding:
Text File  |  1998-10-30  |  27.5 KB  |  473 lines

  1. OPT(5)                                                Last changed: 3-10-98
  2.  
  3.  
  4. NNAAMMEE
  5.      OPT - Miscellaneous compiler optimizations option group
  6.  
  7. SSYYNNOOPPSSIISS
  8.      --OOPPTT:: ...
  9.  
  10. IIMMPPLLEEMMEENNTTAATTIIOONN
  11.      IRIX systems
  12.  
  13. DDEESSCCRRIIPPTTIIOONN
  14.      This man page describes the general optimization options accepted by
  15.      the ff9900(1), ff7777(1), CCCC(1), cccc(1), and cc8899(1) commands.
  16.  
  17.      The --OOPPTT:: option group controls miscellaneous optimizations.  This
  18.      option overrides default optimizations.
  19.  
  20.      You can specify more than one suboption to the --OOPPTT:: option either by
  21.      using colons to separate each suboption or by specifying multiple
  22.      options on the command line.  For example, the following command lines
  23.      are equivalent:
  24.  
  25.           f90 -OPT:cis=ON:cray_ivdep=OFF b.f
  26.           f90 -OPT:cis=ON -OPT:cray_ivdep=OFF b.f
  27.  
  28.      Some --OOPPTT:: suboptions are specified with a setting that either enables
  29.      or disables the feature.  To enable a feature, specify the suboption
  30.      either alone or with ==11, ==OONN, or ==TTRRUUEE.  To disable a feature, specify
  31.      the suboption with either ==00, ==OOFFFF, or ==FFAALLSSEE.  For example, the
  32.      following command lines are equivalent:
  33.  
  34.           f90 -OPT:cis:cray_ivdep=OFF:div_split=FALSE a.f
  35.           f90 -OPT:cis=1:cray_ivdep=0:div_split=OFF a.f
  36.  
  37.      For brevity, this man page shows only the OONN or OOFFFF settings to
  38.      suboptions, but 00, 11, TTRRUUEE, and FFAALLSSEE are also allowed as settings.
  39.  
  40.      There are other options to the compiler commands that control
  41.      optimization.  For information on the general optimization levels, see
  42.      the --OO option on the command man page for your compiler.  For
  43.      information about inlining and interprocedural optimization, see the
  44.      --IINNLLIINNEE:: ... option or the iippaa(5) man page.  For information on loop
  45.      nest optimization, see the llnnoo(5) man page.
  46.  
  47.      The --OOPPTT:: option accepts the following suboptions:
  48.  
  49.      SSuubbooppttiioonnss  AAccttiioonn
  50.  
  51.      aalliiaass==_n_a_m_e  Specifies the pointer aliasing model to be used.  By
  52.                  specifiying one of the following for _n_a_m_e, the compiler is
  53.                  able to make assumptions throughout the compilation:
  54.  
  55.                _n_a_m_e                     AAssssuummppttiioonn
  56.  
  57.                AANNYY or CCOOMMMMOONN__SSCCAALLAARR     AANNYY specifies that any two memory
  58.                                         references can be aliased unless
  59.                                         the compiler can determine
  60.                                         otherwise.  Default pointer
  61.                                         aliasing model.
  62.  
  63.                                         CCOOMMMMOONN__SSCCAALLAARR specifies that scalar
  64.                                         variables that are defined in a
  65.                                         common block along with array
  66.                                         variables are not referenced or
  67.                                         modified by any accesses of the
  68.                                         array variables.
  69.  
  70.                                         (C and C++ only)
  71.  
  72.                ccrraayy__ppooiinntteerr or nnoo__ccrraayy__ppooiinntteerr
  73.                                         ccrraayy__ppooiinntteerr asserts that a
  74.                                         pointee's storage is never overlaid
  75.                                         on another variable's storage.  The
  76.                                         pointee is stored in memory before
  77.                                         a call to an external procedure and
  78.                                         is read out of memory as its next
  79.                                         reference.  It is also stored
  80.                                         before a RREETTUURRNN or EENNDD statement of
  81.                                         a subprogram
  82.  
  83.                                         nnoo__ccrraayy__ppooiinntteerr asserts that a
  84.                                         pointee's storage can overlay on
  85.                                         another variable's storage.
  86.                                         Default.
  87.  
  88.                                         (Fortran 90 or FORTRAN 77)
  89.  
  90.                TTYYPPEEDD or NNOO__TTYYPPEEDD        TTYYPPEEDD specifies that pointers of
  91.                                         distinct base types are assumed to
  92.                                         point to distinct, non-overlapping
  93.                                         objects.
  94.  
  95.                                         NNOO__TTYYPPEEDD specifies that pointers to
  96.                                         different base types may point to
  97.                                         the same object.
  98.  
  99.                                         (C and C++ only)
  100.  
  101.                UUNNNNAAMMEEDD or NNOO__UUNNNNAAMMEEDD    UUNNNNAAMMEEDD specifies that pointers are
  102.                                         assumed never to point to named
  103.                                         objects.
  104.  
  105.                                         NNOO__UUNNNNAAMMEEDD specifies that the
  106.                                         pointer may point to named object.
  107.  
  108.                                         (C and C++ only)
  109.  
  110.                RREESSTTRRIICCTT or NNOO__RREESSTTRRIICCTT  RREESSTTRRIICCTT specifies that distinct
  111.                                         pointers are assumed to point to
  112.                                         distinct, non-overlapping objects.
  113.  
  114.                                         NNOO__RREESSTTRRIICCTT specifies that distinct
  115.                                         pointers may point to overlapping
  116.                                         storage.
  117.  
  118.                                         (C and C++ only)
  119.  
  120.                ppaarrmm or nnoo__ppaarrmm          ppaarrmm asserts that Fortran
  121.                                         parameters do not alias to any
  122.                                         other variable.  Default.
  123.  
  124.                                         nnoo__ppaarrmm asserts that Fortran
  125.                                         parameters can alias to any other
  126.                                         variable.
  127.  
  128.                                         (Fortran 90 or FORTRAN 77)
  129.  
  130.      cciiss[[ == (( OONN||OOFFFF ))]]
  131.                Converts SIN/COS pairs with the same argument to a single
  132.                call that calculates both values at once.  The default is
  133.                OONN.
  134.  
  135.      ccoonnsstt__ccooppyy__lliimmiitt==_n
  136.                (cccc, cc8899, and ff7777 only) Do not do const/copy propagation if
  137.                there are more than _n expressions in a subprogram.  Default
  138.                is _n=10000.
  139.  
  140.      ccrraayy__iivvddeepp[[ == (( OONN||OOFFFF ))]]
  141.                Specifies that the compiler should use UNICOS semantics when
  142.                a !!DDIIRR$$ IIVVDDEEPP directive (Fortran) or a ##pprraaggmmaa iivvddeepp
  143.                statement (C) is encountered.  With UNICOS semantics, the
  144.                compiler ignores all loop iteration dependencies.  The
  145.                default is OOFFFF.  Also see the --OOPPTT::lliibbeerraall__iivvddeepp[[ == (( OONN||OOFFFF
  146.                ))]] option.
  147.  
  148.      ddiivv__sspplliitt[[ == (( OONN||OOFFFF ))]]
  149.                Enables or disables the calculation of x/y as x*(1.0/y).
  150.                The default is ddiivv__sspplliitt==OOFFFF.
  151.  
  152.                This is typically enabled by the --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc==33
  153.                option.  Also see the --OOPPTT::rreecciipp option.  This option should
  154.                be used with caution because it produces less accurate
  155.                results.
  156.  
  157.      ffaasstt__bbiitt__iinnttrriinnssiiccss[[ == (( OONN||OOFFFF ))]]
  158.                OONN turns off the check for the bit count being within range
  159.                for Fortran bit intrinsics (for example, BBTTEESSTT and IISSHHFFTT).
  160.                The default is OOFFFF.
  161.  
  162.      ffaasstt__ccoommpplleexx[[ == (( OONN||OOFFFF ))]]
  163.                ffaasstt__ccoommpplleexx==OONN enables fast calculations for values
  164.                declared as type complex.  When set to OONN, complex absolute
  165.                value (norm) and complex division use fast algorithms that
  166.                overflow for an operand (divisor, in the case of division)
  167.                that has an absolute value that is larger than the square
  168.                root of the largest representable floating-point number (or
  169.                underflow for a value that is smaller than the square root
  170.                of the smallest representable floating point number).
  171.  
  172.                The default is OOFFFF.  ffaasstt__ccoommpplleexx==OONN is enabled if
  173.                --OOPPTT::rroouunnddooffff==33 is in effect.
  174.  
  175.      ffaasstt__eexxpp[[ == (( OONN||OOFFFF ))]]
  176.                ffaasstt__eexxpp==OONN enables optimization of exponentiation by
  177.                replacing the run-time call for exponentiation by
  178.                multiplication and/or square root operations for certain
  179.                compile-time constant exponents (integers and halves).  This
  180.                can produce differently rounded results than the run-time
  181.                function.  ffaasstt__eexxpp==OONN is in effect unless --OOPPTT::rroouunnddooffff==11
  182.                is in effect.  The default is OONN.
  183.  
  184.      ffaasstt__iioo[[ == (( OONN||OOFFFF ))]]
  185.                (C/C++ only) Enables inlining of pprriinnttff(()), ffpprriinnttff(()),
  186.                sspprriinnttff(()), ssccaannff(()), ffssccaannff(()), ssssccaannff(()), and pprriinnttww(()).  This
  187.                option is in effect only when the candidates for inlining
  188.                are marked as intrinsic in the ssttddiioo..hh and ccuurrsseess..hh files.
  189.                The default is OOFFFF.
  190.  
  191.      ffaasstt__nniinntt[[ == (( OONN||OOFFFF ))]]
  192.                ffaasstt__nniinntt==OONN uses hardware features to implement NNIINNTT and
  193.                AANNIINNTT (both single- and double-precision versions).  The
  194.                default is OOFFFF, but ffaasstt__nniinntt==OONN is enabled by default if
  195.                --OOPPTT::rroouunnddooffff==33 is in effect.  ffaasstt__nniinntt==OONN is also enabled
  196.                when ffaasstt__ttrruunncc==OONN is in effect.
  197.  
  198.                FORTRAN 77 and Fortran 90 only:  This violates the FORTRAN
  199.                77 and Fortran 90 standards for certain argument values
  200.                because it rounds as specified by the IEEE standard, rather
  201.                than as specified by the Fortran standards (for example,
  202.                FORTRAN 77 specifies that NNIINNTT((11..55)) is 2, and NNIINNTT((22..55)) is
  203.                3, while IEEE rounds both of these to 2). If ffaasstt__ttrruunncc is
  204.                also enabled, NNIINNTT and AANNIINNTT are implemented with round
  205.                instructions (i.e., ffaasstt__nniinntt takes precedence for these
  206.                intrinsics).
  207.  
  208.      ffaasstt__ssqqrrtt[[ == (( OONN||OOFFFF ))]]
  209.                ffaasstt__ssqqrrtt==OONN calculates square roots using the identity
  210.                ssqqrrtt((xx)) == xx**rrssqqrrtt((xx)), where rrssqqrrtt is the reciprocal square
  211.                root operation.  The default is OOFFFF.  This option is ignored
  212.                unless --mmiippss44 and --rr88000000 are also in effect.
  213.  
  214.                WARNING:  This option results in ssqqrrtt((00..00)) producing a NaN
  215.                result.  Use it only when zero ssqqrrtt operands are not valid.
  216.  
  217.      ffaasstt__ttrruunncc[[ == (( OONN||OOFFFF ))]]
  218.                ffaasstt__ttrruunncc==OONN inlines the NNIINNTT, AANNIINNTT, AAIINNTT, and AAMMOODD
  219.                Fortran intrinsics, both single- and double-precision
  220.                versions.  The default is OOFFFF.  ffaasstt__ttrruunncc==OONN is enabled
  221.                automatically if --OOPPTT::rroouunnddooffff==11 (or greater) is in effect.
  222.  
  223.                FORTRAN 77 and Fortran 90 only:  Although this is compliant
  224.                with the FORTRAN 77 and Fortran 90 standards, it reduces the
  225.                valid argument range.  If ffaasstt__nniinntt is also enabled, NNIINNTT
  226.                and AANNIINNTT are implemented with round instructions (that is,
  227.                ffaasstt__nniinntt takes precedence for these intrinsics).
  228.  
  229.      ffoolldd__rreeaassssoocciiaattee[[ == (( OONN||OOFFFF ))]]
  230.                ffoolldd__rreeaassssoocciiaattee==OONN allows optimizations involving
  231.                reassociation of floating-point quantities.  The default is
  232.                OOFFFF.  ffoolldd__rreeaassssoocciiaattee==OONN is enabled automatically when --OO33
  233.                is in effect or when --OOPPTT::rroouunnddooffff==22 or greater is in
  234.                effect.
  235.  
  236.      ffoolldd__uunnssaaffee__rreellooppss[[ == (( OONN||OOFFFF ))]]
  237.                ffoolldd__uunnssaaffee__rreellooppss==OONN folds relational operators in the
  238.                presence of possible integer overflow.  The default is OONN.
  239.  
  240.      ffoolldd__uunnssiiggnneedd__rreellooppss[[ == (( OONN||OOFFFF ))]]
  241.                ffoolldd__uunnssiiggnneedd__rreellooppss==OONN folds unsigned relational operators
  242.                in the presence of possible integer overflow.  The default
  243.                is OOFFFF.
  244.  
  245.      ggoott__ccaallll__ccoonnvveerrssiioonn[[ == (( OONN||OOFFFF ))]]
  246.                ggoott__ccaallll__ccoonnvveerrssiioonn==OONN loads function addresses to be moved
  247.                out of loops.  The load is set up with the proper relocation
  248.                so that the address is resolved at program start-up time.
  249.                The default is OOFFFF when --OO22 or lower is in effect.
  250.                ggoott__ccaallll__ccoonnvveerrssiioonn==OONN when --OO33 is in effect.
  251.  
  252.                NOTE:  This option should be disabled when compiling shared
  253.                objects that contain function addresses that may be
  254.                preempted by rrlldd(1).  For more information, see the ddssoo(5)
  255.                man page.
  256.  
  257.      IIEEEEEE__aarriitthhmmeettiicc==_n
  258.                Specifies the level of conformance to ANSI/IEEE 754-1985,
  259.                the IEEE Standard for Binary Floating-point Arithmetic,
  260.                which describes a standard for, among other things, NaN and
  261.                inf operands, arithmetic round off, and overflow.  _n can be
  262.                one of the following:
  263.  
  264.                _n   DDeessccrriippttiioonn
  265.  
  266.                1   Inhibits optimizations that produce less accurate
  267.                    results than required by ANSI/IEEE 754-1985.  This is
  268.                    the default.
  269.  
  270.                2   Allows compiler optimizations that can produce less
  271.                    accurate inexact results (but accurate exact results) on
  272.                    the target hardware.  That is, expressions that would
  273.                    have produced a NaN or an inf may produce different
  274.                    answers, but otherwise answers are the same as those
  275.                    obtained when IIEEEEEE__aarriitthhmmeettiicc==11 is in effect.  Examples:
  276.                    00**XX may be changed to 0, and XX//XX may be changed to 1
  277.                    even though this is inaccurate when XX is +inf, -inf, or
  278.                    NaN.
  279.  
  280.                3   Performs arbitrary, mathematically valid
  281.                    transformations, even if they can produce inaccurate
  282.                    results for operations specified in ANSI/IEEE 754-1985.
  283.                    These transformations can cause overflow or underflow
  284.                    for a valid operand range.  An example is the conversion
  285.                    of _x//_y to _x**rreecciipp((_y)) for MIPS IV targets.  Also see the
  286.                    --OOPPTT::rroouunnddooffff==_n option.
  287.  
  288.      IIEEEEEE__ccoommppaarriissoonnss[[ == (( OONN||OOFFFF ))]]
  289.              Forces all comparisons to yield results that conform to
  290.              ANSI/IEEE 754-1985, the IEEE Standard for Binary Floating-
  291.              point Arithmetic, which describes a standard for NaN and inf
  292.              operands.  The default is IIEEEEEE__ccoommppaarriissoonnss==OOFFFF.
  293.  
  294.              IIEEEEEE__ccoommppaarriissoonnss==OOFFFF produces non-IEEE results for
  295.              comparisons.  For example, xx==xx is treated as TTRRUUEE without
  296.              executing a test.
  297.  
  298.              NOTE:  This option has been deprecated and will be removed in
  299.              a future release.  The preferred alternative is the
  300.              --OOPPTT::IIEEEEEE__NNaaNN__iinnff== option.
  301.  
  302.              (Fortran 90 only)
  303.  
  304.      IIEEEEEE__NNaaNN__iinnff[[ == (( OONN||OOFFFF ))]]
  305.              IIEEEEEE__NNaaNN__iinnff==OONN forces all operations that might have IEEE-754
  306.              NaN or infinity operands to yield results that conform to
  307.              ANSI/IEEE 754-1985, the IEEE Standard for Binary Floating-
  308.              point Arithmetic, which specifies the standard for NaN and inf
  309.              operands.  The default is OOFFFF.
  310.  
  311.              IIEEEEEE__NNaaNN__iinnff==OOFFFF produces non-IEEE results for various
  312.              operations.  For example, xx==xx is treated as TRUE without
  313.              executing a test and xx//xx is simplified to 1 without dividing.
  314.              Turning this option on may suppress many such common
  315.              optimizations and hurt performance.
  316.  
  317.      iinnlliinnee__iinnttrriinnssiiccss[[ == (( OONN||OOFFFF ))]]
  318.              iinnlliinnee__iinnttrriinnssiiccss==OOFFFF turns all Fortran intrinsics that have a
  319.              library function into a call to that function.  The default is
  320.              OONN.
  321.  
  322.      lliibbeerraall__iivvddeepp[[ == (( OONN||OOFFFF ))]]
  323.              Instructs the compiler to ignore all vector dependencies when
  324.              encountering IIVVDDEEPP directives.  The default is OOFFFF.
  325.  
  326.      OOlliimmiitt==_n
  327.              Specifies that any routine bigger than _n should not be
  328.              optimized.  If --OO22 or greater is in effect and a routine is so
  329.              big that the compile speed may be slow, the compiler generates
  330.              a message indicating the OOlliimmiitt value that is needed to
  331.              optimize.  You can recompile with that value of _n, or you can
  332.              recompile with --OOPPTT::OOlliimmiitt==00 and avoid having any OOlliimmiitt
  333.              cutoff.
  334.  
  335.      ppaadd__ccoommmmoonn[[ == (( OONN||OOFFFF ))]]
  336.              ppaadd__ccoommmmoonn==OONN reorganizes common blocks to improve the cache
  337.              behavior of accesses to members of the common block.  This may
  338.              involve adding padding between members and/or breaking a
  339.              common block into a collection of common blocks.  The default
  340.              is OOFFFF.
  341.  
  342.              This option should not be used unless the common block
  343.              definitions (including EEQQUUIIVVAALLEENNCCEE) are consistent among all
  344.              sources comprising a program.  In addition, ppaadd__ccoommmmoonn==OONN
  345.              should not be specified if common blocks are initialized with
  346.              DDAATTAA statements.  If specified, ppaadd__ccoommmmoonn==OONN must be used for
  347.              all of source files in the program.
  348.  
  349.              ppaadd__ccoommmmoonn==OONN is supported for Fortran only.  It should not be
  350.              used if a common block is referenced from C code.
  351.  
  352.      rreecciipp[[ == (( OONN||OOFFFF ))]]
  353.              rreecciipp==OONN specifies that faster, but potentially less accurate,
  354.              reciprocal operations should be performed.  The default is
  355.              OOFFFF.
  356.  
  357.              If --OO33 or --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc==22 or above are in effect,
  358.              rreecciipp==OONN is enabled.  The rreecciipp==OONN setting is effective only
  359.              if --rr88000000 is in effect.
  360.  
  361.      rreeoorrgg__ccoommmmoonn[[ == (( OONN||OOFFFF ))]]
  362.              rreeoorrgg__ccoommmmoonn==OONN reorganizes common blocks to improve the cache
  363.              behavior of accesses to members of the common block.  The
  364.              reorganization is done only if the compiler detects that it is
  365.              safe to do so.
  366.  
  367.              rreeoorrgg__ccoommmmoonn==OONN is enabled when --OO33 is in effect and when all
  368.              files that reference the common block are compiled at --OO33..
  369.  
  370.              rreeoorrgg__ccoommmmoonn==OOFFFF is set when the file that contains the common
  371.              block is compiled at --OO22 (or below).
  372.  
  373.      rroouunnddooffff==_n
  374.              Specifies the level of acceptable departure from source
  375.              language floating-point, round-off, and overflow semantics.  _n
  376.              can be one of the following:
  377.  
  378.              _n   DDeessccrriippttiioonn
  379.  
  380.              0   Inhibits optimizations that might affect the
  381.                  floating-point behavior.  This is the default when
  382.                  optimization levels --OO00, --OO11, and --OO22 are in effect.
  383.  
  384.              1   Allows simple transformations that might cause limited
  385.                  round-off or overflow differences.  Compounding such
  386.                  transformations could have more extensive effects.
  387.  
  388.              2   Allows more extensive transformations, such as the
  389.                  reordering of reduction loops.  This is the default level
  390.                  when --OO33 is in effect.
  391.  
  392.              3   Enables any mathematically valid transformation.
  393.  
  394.              To obtain best performance in conjunction with software
  395.              pipelining, specify rroouunnddooffff==22 or rroouunnddooffff==33.  This is because
  396.              reassociation is required for many transformations to break
  397.              recurrences in loops.  Also see the descriptions for the
  398.              --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc, --OOPPTT::ffaasstt__ccoommpplleexx, --OOPPTT::ffaasstt__ttrruunncc, and
  399.              --OOPPTT::ffaasstt__nniinntt options.
  400.  
  401.      rrssqqrrtt[[ == (( OONN||OOFFFF ))]]
  402.              rrssqqrrtt==OONN specifies that faster, but potentially less accurate,
  403.              square root operations should be performed.  The default is
  404.              OOFFFF.
  405.  
  406.              If --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc==22 (or above) or --OO33 are in effect,
  407.              rrssqqrrtt==OONN is enabled.
  408.  
  409.      ssppaaccee[[ == (( OONN||OOFFFF ))]]
  410.              ssppaaccee==OONN specifies that code space is to be given priority in
  411.              tradeoffs with execution time in optimization choices.  For
  412.              instance, this forces all exits from a function to go through
  413.              a single exit block.  The default is OOFFFF.
  414.  
  415.      sswwpp[[ == (( OONN||OOFFFF ))]]
  416.              sswwpp==OONN enables software pipelining.  sswwpp==OONN is enabled when
  417.              --OO33 is in effect.  The default is OOFFFF.
  418.  
  419.      uunnrroollll__aannaallyyssiiss[[ == (( OONN||OOFFFF ))]]
  420.              uunnrroollll__aannaallyyssiiss==OONN analyzes resource usage and recurrences in
  421.              bodies of innermost loops that do not qualify for being fully
  422.              unrolled.  Such loops are unrolled only to the extent to which
  423.              there is a potential benefit in doing so.  A loop could be
  424.              unrolled, for example, to decrease the shortest possible
  425.              schedule length per iteration.  The default is OONN.
  426.  
  427.              uunnrroollll__aannaallyyssiiss==OOFFFF can have the negative effect of unrolling
  428.              loops less than the upper limit dictated by the
  429.              OOPPTT::uunnrroollll__ttiimmeess__mmaaxx and OOPPTT::uunnrroollll__ssiizzee specifications.
  430.  
  431.      uunnrroollll__ssiizzee==_n
  432.              Specifies the maximum size (in instructions) of an unrolled
  433.              loop.  Specify an integer for _n.  The default is 332200.
  434.  
  435.              This option indirectly determines which loops can be fully
  436.              unrolled.  Also see the --OOPPTT::uunnrroollll__ttiimmeess__mmaaxx option.
  437.  
  438.      uunnrroollll__ttiimmeess__mmaaxx==_n
  439.              Specifies the maximum number of times a loop will be unrolled
  440.              if it is not going to be fully unrolled.  Specify an integer
  441.              for _n.  The default is 88 when --mmiippss44 is in effect.  The
  442.              default is 44 when --mmiippss33 is in effect.  Also see the
  443.              --OOPPTT::uunnrroollll__ssiizzee option.
  444.  
  445.      wwrraapp__aarroouunndd__uunnssaaffee__oopptt[[ == (( OONN||OOFFFF ))]]
  446.              wwrraapp__aarroouunndd__uunnssaaffee__oopptt==OOFFFF disables both the induction
  447.              variable replacement and linear function test replacement
  448.              optimizations.  By default, these optimizations are enabled at
  449.              --OO22 and --OO33.  This option is disabled by default at --OO00.
  450.  
  451.              Setting this option to OOFFFF can degrade performance.  It is
  452.              provided, however, as a diagnostic tool to identify the
  453.              situation described previously.
  454.  
  455. SSEEEE AALLSSOO
  456.      cccc(1), CCCC(1), ccoorrdd(1), ddssoo(1), ff7777(1), ff9900(1), ffppmmooddee(1), hhiinnvv(1),
  457.      lldd(1), mmaakkee(1), ppiixxiiee(1), ppmmaakkee(1), pprrooff(1), rrlldd(1), ssmmaakkee(1).
  458.  
  459.      mmaatthh(3M).
  460.  
  461.      aauuttoo__pp(5), ggpp__oovveerrffllooww(5), iippaa(5), llnnoo(5), ppee__eennvviirroonn(5).
  462.  
  463.      _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication 007-0701-120
  464.  
  465.      _M_I_P_S_p_r_o _C _a_n_d _C++ _P_r_a_g_m_a_s, publication 007-3587-001
  466.  
  467.      _C_o_m_p_i_l_e_r _I_n_f_o_r_m_a_t_i_o_n _F_i_l_e (_C_I_F) _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l, publication SR-2401
  468.  
  469.      _M_I_P_S_P_r_o _7 _F_o_r_t_r_a_n _9_0 _C_o_m_m_a_n_d_s _a_n_d _D_i_r_e_c_t_i_v_e_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l,
  470.      publication SR-3907
  471.  
  472.      This man page is available only online.
  473.